// 导入Vue核心库
import Vue from 'vue'
// 导入Vue路由库
import Router from 'vue-router'

// 使用VueRouter插件
Vue.use(Router)

// 定义基础路由，这些路由不会根据权限变化
const baseRoutes = [{
  // 路由路径为/notPermission
  path: '/notPermission',
  // 使用异步加载方式加载组件
  component: () => import('data-room-ui/NotPermission/index.vue')
}]

// 导出常量路由，这里目前没有定义任何路由
export const constantRoutes = []

// 创建路由函数，用于初始化路由
const createRouter = () => new Router({
  // 根据环境变量配置路由模式，如果VUE_APP_HISTORY为'y'则使用history模式
  mode: process.env.VUE_APP_HISTORY === 'y' ? 'history' : null,
  // 根据环境变量配置路由基址，如果VUE_APP_HISTORY为'y'则使用VUE_APP_BASE的值
  base: process.env.VUE_APP_HISTORY === 'y' ? process.env.VUE_APP_BASE : null,
  // 指定页面滚动行为，返回初始位置
  scrollBehavior: () => ({ y: 0 }),
  // 设置路由规则
  routes: baseRoutes
})

// 调用createRouter函数创建路由实例
const router = createRouter()

// 重置路由配置函数，用于在权限变更时重置路由
export function resetRouter () {
  // 创建新的路由实例
  const newRouter = createRouter()
  // 通过替换matcher属性来重置路由
  router.matcher = newRouter.matcher
}

// 导出默认的路由实例
export default router

